package com.gzy.wbapplication.views;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.gzy.wbapplication.R;

public class TabBarItem extends RelativeLayout {

    String title;
    TextView tv_tabbar_title;
    ImageView iv_tabbar_icon;

    private Drawable icon_normal;
    private Drawable icon_highlight;

    private int textColor_normal = Color.GREEN;
    private int textColor_highlight = Color.RED;


    public TabBarItem(Context context) {
        super(context);
        init(null, 0);
    }

    public TabBarItem(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(attrs, 0);
    }

    public TabBarItem(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(attrs, defStyleAttr);
    }

    public TabBarItem(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);

        init(attrs, defStyleAttr);
    }

    private void init(AttributeSet attrs, int defStyle) {
        LayoutInflater.from(getContext()).inflate(R.layout.layout_tabbar_item, this, true);

        // 获取到所有样式的值
        final TypedArray a = getContext().obtainStyledAttributes(
                attrs, R.styleable.TabBarItem, defStyle, 0);

        // 获取某个样式的值
        title = a.getString(R.styleable.TabBarItem_text);

        icon_normal = a.getDrawable(R.styleable.TabBarItem_icon_normal);
        icon_highlight = a.getDrawable(R.styleable.TabBarItem_icon_highlight);

        icon_normal.setCallback(this);
        icon_highlight.setCallback(this);

        textColor_normal = a.getColor(R.styleable.TabBarItem_textColor_normal, textColor_normal);
        textColor_highlight = a.getColor(R.styleable.TabBarItem_textColor_highlight, textColor_highlight);

        boolean select = a.getBoolean(R.styleable.TabBarItem_select, false);

        // 释放资源
        a.recycle();

        // find view
        tv_tabbar_title = findViewById(R.id.tv_tabbar_title);
        iv_tabbar_icon = findViewById(R.id.iv_tabbar_icon);


        // 初始化 view
        tv_tabbar_title.setText(title);

        setSelected(select);
    }

    @Override
    public void setSelected(boolean selected) {
        super.setSelected(selected);
        if (selected){
            tv_tabbar_title.setTextColor(textColor_highlight);
            iv_tabbar_icon.setImageDrawable(icon_highlight);
        }else{
            tv_tabbar_title.setTextColor(textColor_normal);
            iv_tabbar_icon.setImageDrawable(icon_normal);
        }
    }
}
